﻿using BCCommon;
using BCCommon.Enums;
using BCCommon.TMS.Driver;
using BCDto.TMS.Driver.DriverExamine;
using BCDto.TMS.Driver.DriverExamLearn;
using BCDto.TMS.Driver.DriverLearnDatum;

namespace BCService.TMS.Driver.DriverExamLearn
{
    public interface IDriverExamLearnService
    {
        /// <summary>
        /// 获取一组学习资料信息列表
        /// </summary>
        /// <param name="datumTopic">学习标题</param>
        /// <param name="answerContent">学习内容</param>
        /// <param name="index">分页页码</param>
        /// <param name="size">分页页数</param>
        /// <param name="role">司机角色类型</param>
        /// <returns></returns>
        PageableList<DriverLearnDatumDto> GetDriverLearnDatums(string datumTopic, string answerContent, int index, int size, DriverRoleType role);

        /// <summary>
        /// 获取当前司机的考试成绩
        /// </summary>
        /// <param name="driverId">当前登录的司机编号</param>
        /// <returns></returns>
        DriverExamineMarkDto GetExamineMarkByDriverId(long driverId);

        /// <summary>
        /// 获取一组考试试题信息列表
        /// </summary>
        /// <param name="role">司机角色类型</param>
        /// <returns></returns>
        PageableList<DriverExamineTestQuestionDto> GetExamineTestquestions(DriverRoleType role);

        /// <summary>
        /// 获取指定试卷的考试题答案信息
        /// </summary>
        /// <param name="paperId">试卷编号</param>
        /// <returns></returns>
        PageableList<ExamineQuestionAnswerDto> GetExamineQuestionAnswers(long paperId);

        /// <summary>
        /// 生成一份考试成绩表
        /// </summary>
        /// <param name="driverId"></param>
        /// <param name="dto"></param>
        /// <returns></returns>
        DriverExamineMarkDto CreateExamineMark(long driverId, DriverExamineMarkRequestDto dto);
    }
}
